#include <iostream>
using namespace std;

class F;
class C;

class F
{
    public:
        F(){};
        F(int i):i(i)
        {}
    friend void friend_fun(const F & );

    private:
        int i;
};

class C:public F
{
    public:
        C(){};
        C(int j):j(j)
        {}
    private:
        int j;
};


void friend_fun(const C &c)
{
    // 是不能在这个友元函数访问 派生类的私有成员，如果能，这表示Friend_Fun 是派生类的友元函数
    // cout<<"我在这里直接输出继承过来的的基类的私有保护成员："<<c.F::i<<endl;          错误！
    // 但是 不能访问派生类自己本身的私有保护成员
    // cout<<"我在这里直接输出派生类的私有保护成员："<<c.j<<endl;

}


int main()
{
    C c(10);
    friend_fun(c);
    return 0;
}